package com.hngates.architecture.service;

import com.hngates.architecture.domain.ArcProject;
import com.hngates.architecture.domain.dto.ProjectBuilderDto;
import com.hngates.architecture.domain.dto.ProjectStatusDto;

import java.util.List;

/**
 * 项目（工地）Service接口
 *
 * @author jwhe
 * @date 2022-07-04
 */
public interface IArcProjectService {
    /**
     * 查询项目（工地）
     *
     * @param id 项目（工地）主键
     * @return 项目（工地）
     */
    public ArcProject selectArcProjectById(Long id);

    /**
     * 查询项目（工地）列表
     *
     * @param arcProject 项目（工地）
     * @return 项目（工地）集合
     */
    public List<ArcProject> selectArcProjectList(ArcProject arcProject);

    /**
     * 新增项目（工地）
     *
     * @param arcProject 项目（工地）
     * @return 结果
     */
    public int insertArcProject(ArcProject arcProject);

    /**
     * 修改项目（工地）
     *
     * @param arcProject 项目（工地）
     * @return 结果
     */
    public int updateArcProject(ArcProject arcProject);

    /**
     * 批量删除项目（工地）
     *
     * @param ids 需要删除的项目（工地）主键集合
     * @return 结果
     */
    public int deleteArcProjectByIds(String ids);

    /**
     * 删除项目（工地）信息
     *
     * @param id 项目（工地）主键
     * @return 结果
     */
    public int deleteArcProjectById(Long id);

    public ArcProject selectArcProjectByName(String projectName);

    /**
     * 查 首页 列表 信息
     *
     * @param projectName
     * @param builderCompanyName
     * @return
     */
    public List<ProjectBuilderDto> selectProjectBuilderInfos(String queryName);

    /**
     * 查当前项目总数
     *
     * @return
     */
    public Integer selectProjectCount();

    /**
     * 查项目状态的统计
     *
     * @return
     */
    public List<ProjectStatusDto> selectProjectStatus();
}
